package com.ycz.algorithm.utils.list;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author yancz
 * @ClassName ListUtil
 * @description: TODO
 * @date 2024-11-19 11:30:19
 * @version: 1.0
 */
public class ListUtil {

    public static void main(String[] args) {
        // 初始化列表
        List<Integer> list = initList();
        for (int i : list) {
            System.out.print(i + "\t");
        }
        System.out.println();
        // 访问元素，get(index)方法
        System.out.println("索引为1的元素：" + list.get(1));
        // 更新元素，set(index,target)方法
        list.set(1, 6);
        System.out.println("索引为1的元素：" + list.get(1));
        // 列表清空，clear()方法
        list.clear();
        System.out.println("列表长度：" + list.size());
        // 列表添加元素，add()方法
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        // 中间插入元素，索引2的位置插入元素6
        list.add(2, 6);
        for (int i : list) {
            System.out.print(i + "\t");
        }
        System.out.println();
        // 移除元素，移除索引2处的元素，remove()方法
        list.remove(2);
        for (int i : list) {
            System.out.print(i + "\t");
        }
        System.out.println();
        // 列表遍历
        for (int i = 0; i < list.size(); i++) { // 索引遍历列表
            System.out.print(list.get(i) + "\t");
        }
        System.out.println();
        for (int i : list) { // forEach遍历列表
            System.out.print(i + "\t");
        }
        System.out.println();
        // 列表拼接
        List<Integer> nums1 = new ArrayList<>(Arrays.asList(6, 9, 8, 10, 7));
        list.addAll(nums1);
        for (int i : list) {
            System.out.print(i + "\t");
        }
        System.out.println();
        // 列表排序
        Collections.sort(list);
        for (int i : list) {
            System.out.print(i + "\t");
        }
        System.out.println();
    }

    /*
     * @author yancz
     * @description 初始化列表
     * @date 2024/11/19 16:02
     * @return List<Integer>
     **/
    static List<Integer> initList() {
        // 无初始值
        List<Integer> nums1 = new ArrayList<>();
        // 有初始值
        Integer[] numbers = new Integer[]{1, 2, 3, 4, 5};
        return new ArrayList<>(Arrays.asList(numbers));
    }

}
